using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Publicuse.Entity.AttributeUtil
{
    /// <summary>
    ///实体映射数据库表主键名
    /// </summary>
    [AttributeUsage(AttributeTargets.Property,
     AllowMultiple = true, Inherited = true)]
    public class PrimaryKeyAttribute : BaseMappingAttribute
    {
        public PrimaryKeyAttribute(string name) : base(name)
        {
        }
    }

    /// <summary>
    /// 实体映射数据库表名
    /// </summary>
    [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
    public class DBTableAttribute : BaseMappingAttribute
    {
        private string remark { get; set; }

        public string GetTableName { get { return this.remark; } }

        public DBTableAttribute(string name, string remark) : base(name)
        {
            this.remark = remark;
        }
    }

    /// <summary>
    /// Lucene需要分词的字段
    /// </summary>
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)]
    public class ANALYZEDAttribute : Attribute
    {
        public ANALYZEDAttribute()
        {
        }
    }

    /// <summary>
    ///等于查询的过滤字段
    /// </summary>
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)]
    public class EqueryQueryAttribute : Attribute
    {
        public EqueryQueryAttribute()
        {
        }
    }

    /// <summary>
    ///导出数据编号集合属性
    /// </summary>
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)]
    public class ExportidsAttribute : Attribute
    {
        public ExportidsAttribute()
        {
        }
    }

    /// <summary>
    ///模糊查询的过滤字段
    /// </summary>
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)]
    public class LikeQueryAttribute : Attribute
    {
        public LikeQueryAttribute()
        {
        }
    }

    /// <summary>
    ///小于等于查询的过滤字段
    /// </summary>
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)]
    public class LTEQueryAttribute : Attribute
    {
        public LTEQueryAttribute()
        {
        }
    }

    /// <summary>
    ///大于等于查询的过滤字段
    /// </summary>
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)]
    public class GTEQueryAttribute : Attribute
    {
        public GTEQueryAttribute()
        {
        }
    }


    /// <summary>
    /// 不查询的过滤字段
    /// </summary>
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)]
    public class NoQueryAttribute : Attribute
    {
        public NoQueryAttribute()
        {
        }
    }

    /// <summary>
    /// 额外查询的过滤字段
    /// </summary>
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)]
    public class CombinationQueryAttribute : Attribute
    {
        public CombinationQueryAttribute()
        {
        }
    }

    /// <summary>
    /// 不参以新增的字段
    /// </summary>
    public class NoInsertAttribute : Attribute
    {
        public NoInsertAttribute()
        {
        }
    }

    /// <summary>
    /// 不参以修改的字段
    /// </summary>
    public class NoUpdateAttribute : Attribute
    {
        public NoUpdateAttribute()
        {
        }
    }

    /// <summary>
    ///交通数据管理模块年度类型字段区分20220314
    /// </summary>
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)]
    public class YearcomAttribute : Attribute
    {
        public YearcomAttribute()
        {
        }
    }

    /// <summary>
    /// 交通数据管理模块年度类型字段区分20220314
    /// </summary>
    public class NoYearcomAttribute : Attribute
    {
        public NoYearcomAttribute()
        {
        }
    }

}
